#ifndef _SOURCE_DATAEXPORTER_H_
#define _SOURCE_DATAEXPORTER_H_

//--------------------------------------------------------------------------------------
/// CDataExporter : organize exported data to certain format and write them to file.
//---------------------------------------------------------------------------------------

class CMaxNodeSelector;
class CSimpleLabelWriter;

extern const int g_maxContextLength; 

class CDataExporter
{
public:
	CDataExporter(void);
	~CDataExporter(void);

	// set name of file to write to.
	virtual void SetFileName(const char* fileName);
	// visit nodes from nodeSelector and organize the data from them.
	virtual void AnalyzeNode(CMaxNodeSelector* nodeSelector);
	// write to file. must call SetFileName before to specific a file.
	virtual bool ExportToFile(void);
	// clear every record after all scene exported.
	virtual void Clear(void);

protected:
	CSimpleLabelWriter *m_pFileWriter;
	const char m_szFileName[g_maxContextLength];
};

#endif //#ifndef _SOURCE_DATAEXPORTER_H_